home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / emerald / emrldsys.lha / Language / Compiler / Builtins / Node.m < prev    next >
Encoding:
Text File  |  1990-08-16  |  2.9 KB  |  87 lines

  1. % @(#)Node.m    1.3  3/16/88
  2. %
  3. import _HandlerObject from "Builtins"
  4. import _NodeListObject, _NodeListElementObject from "Builtins"
  5. import _InStreamObject, _OutStreamObject from "Builtins"
  6. export _NodeObject to "Builtins"
  7.  
  8. const _NodeObject == immutable object _NodeObject
  9.   export getSignature, create, getStdin, getStdout
  10.  
  11.   const NodeType == type i_NodeType
  12.     operation getActiveNodes -> [ _NodeListObject ]
  13.     operation getAllNodes    -> [ _NodeListObject ]
  14.     operation getNodeInformation [ Node ] -> [ _NodeListElementObject ]
  15.     operation getTimeOfDay -> [ Time ]
  16.     operation delay [ Time ]
  17.     operation waitUntil [ Time ]
  18.     operation getLoadAverage -> [ Real ]
  19.     operation setNodeEventHandler [ _HandlerObject ]
  20.     operation removeNodeEventHandler [ _HandlerObject ]
  21.     operation getStdin -> [_InStreamObject]
  22.     operation getStdout -> [_OutStreamObject]
  23.     function  getLNN -> [Integer]
  24.     function  getName -> [String]
  25.   end i_NodeType
  26.  
  27.   function getSignature -> [ result : Signature ]
  28.     result <- NodeType
  29.   end getSignature
  30.   operation getStdin -> [ result : _InStreamObject ]
  31.     primitive 2008 [result] <- []
  32.   end getStdin
  33.   operation getStdout -> [ result : _OutStreamObject ]
  34.     primitive 2108 [result] <- []
  35.   end getStdout
  36.   operation create -> [ n : NodeType ]
  37.     n <- object aNode
  38.       export 
  39.      getActiveNodes, getAllNodes, getNodeInformation,
  40.     getTimeOfDay, delay, waitUntil, getLoadAverage,
  41.     setNodeEventHandler, removeNodeEventHandler,
  42.     getStdin, getStdout, getLNN, getName
  43.     
  44.       operation getTimeOfDay -> [ t : Time ]
  45.     primitive "Node_getTimeOfDay" [ t ] <- [ ]
  46.       end getTimeOfDay
  47.       operation delay [ t : Time ]
  48.     primitive 008 [ ] <- [ t ]
  49.       end delay
  50.       operation waitUntil [ t : Time ]
  51.     primitive 108 [ ] <- [ t ]
  52.       end waitUntil
  53.       operation getActiveNodes -> [ r : _NodeListObject ]
  54.      primitive 208 [ r ] <- [ ]
  55.       end getActiveNodes
  56.       operation getAllNodes -> [ r : _NodeListObject ]
  57.      primitive 308 [ r ] <- [ ]
  58.       end getAllNodes
  59.       operation getNodeInformation [ n : Node ] -> [ r : _NodeListELementObject ]
  60.      primitive 408 [ r ] <- [ n ]
  61.       end getNodeInformation
  62.       operation getLoadAverage -> [ r : Real ]
  63.     primitive "Node_getLoadAverage" [ r ] <- [ ]
  64.       end getLoadAverage
  65.       operation setNodeEventHandler [ h : _HandlerObject ]
  66.     primitive 508 [ ] <- [ h ]
  67.       end setNodeEventHandler
  68.       operation removeNodeEventHandler [ h : _HandlerObject ]
  69.     primitive 608 [ ] <- [ h ]
  70.       end removeNodeEventHandler
  71.       operation getStdin -> [ result : _InStreamObject ]
  72.     primitive 708 [result] <- []
  73.       end getStdin
  74.       operation getStdout -> [ result : _OutStreamObject ]
  75.     primitive 808 [result] <- []
  76.       end getStdout
  77.       function getLNN -> [result : Integer]
  78.     primitive "Node_getLNN" [result] <- []
  79.       end getLNN
  80.       function getName -> [result : String]
  81.     primitive 908 [result] <- []
  82.       end getName
  83.     end aNode
  84.   end create
  85. end _NodeObject
  86.